A Program Slicer Using Def-Slice-Use Tables for Efficiently Slicing Both User-Defined and Library Functions

نویسندگان

  • Xinjun ZHANG
  • Takao SHIMOMURA
چکیده

Program slicing is a technique for statically analyzing a program and extracting an executable sub-program, which is called a program slice, from the original program. This technique has been widely applied to program testing, debugging and maintenance. This paper presents a slicing method for extracting program slices from a program that calls library functions, which are provided as object code. The method this paper presents analyzes dependence relationships between library functions using global data that are referred to by the library functions but not explicitly declared in a program. In this method, before slicing a program with respect to a slicing criterion, a DefSlice-Use table will be generated that stores slice information for each function in the program by slicing these functions in advance, and then the program can be efficiently sliced using this table. The paper also illustrates some examples of program slicing using a program slicer LibSlicer that implements this method. key words: control dependence, data dependence, library function, program dependence graph, program slice

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Kaveri: Delivering the Indus Java Program Slicer to Eclipse

This tool paper describes a modular program slicer for Java built using the Indus program analysis framework along with it’s Eclipse-based user interface called Kaveri. Indus provides a library of classes that enables users to quickly assemble a highly customized non-system dependence graph based inter-procedural program slicer capable of slicing concurrent Java programs. Kaveri is an Eclipse p...

متن کامل

Enabling Certification through an Integrated Comprehension Approach

ion, by virtue of producing an abstract model similar to the program model, works in a manner that facilitates bottom-up comprehension. It thus forms a perfect foil for slicing by (automatically) providing program models to the analyst at specified levels of abstraction, that can be used to form the hypotheses upon which the slicing criteria are based upon. Further, the abstracted model can be ...

متن کامل

Slicing of Constraint Logic Programs

Abstract. Slicing is a program analysis technique originally developed for imperative languages. It facilitates understanding of data flow and debugging. This paper discusses slicing of Constraint Logic Programs. Constraint Logic Programming (CLP) is an emerging software technology with a growing number of applications. Data flow in constraint programs is not explicit, and for this reason the c...

متن کامل

An Incremental Slicing Method for Functional Programs

Several applications of slicing require a program to be sliced with respect to more than one slicing criterion. Program specialization, parallelization and cohesion measurement are examples of such applications. Œese applications can bene€t from an incremental static slicing method in which a signi€cant extent of the computations for slicing with respect to one criterion could be reused for ano...

متن کامل

A New Approach for Concurrent Program Slicing

Regarding the progress made in model analysis, more complex models, and consequently more complex programs can now be analyzed. However, this remains a difficult task in particular for concurrent programs which induce a lot of combinatory. Another way to reduce this complexity is to use program decomposition. Program decomposition technics extract a part of a given program while preserving the ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2000